reftests: Port from gtk_widget_draw() to snapshots
authorBenjamin Otte <otte@redhat.com>
Mon, 2 Apr 2018 06:25:04 +0000 (08:25 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 5 Apr 2018 12:56:39 +0000 (14:56 +0200)
testsuite/reftests/reftest-snapshot.c

index d875fec1d4b9392f7ba6c68ac25c52172b5e0ad1..2640050dd87b8f82ec7b0f66808e5763aefe4f6b 100644 (file)
@@ -172,7 +172,19 @@ snapshot_widget (GtkWidget *widget, SnapshotMode mode)
       snapshot_window_native (gtk_widget_get_surface (widget), cr);
       break;
     case SNAPSHOT_DRAW:
-      gtk_widget_draw (widget, cr);
+      {
+        GtkSnapshot *snapshot = gtk_snapshot_new (FALSE, "ReftestSnapshot");
+        GdkPaintable *paintable = gtk_widget_paintable_new (widget);
+        GskRenderNode *node;
+
+        gdk_paintable_snapshot (paintable,
+                                snapshot,
+                                gtk_widget_get_allocated_width (widget),
+                                gtk_widget_get_allocated_height (widget));
+        g_object_unref (paintable);
+        node = gtk_snapshot_free_to_node (snapshot);
+        gsk_render_node_draw (node, cr);
+      }
       break;
     default:
       g_assert_not_reached();